1. Field of the Invention
The present invention is directed to a graphical user interface that presents the user with a large number of menu items and, more particularly, to an interface that provides marking menu features combined with menu bar features where the menu bars spatially mimic the menu bars of the windows of the application and where the features allow fast access to a large number of menu items.
2. Description of the Related Art
Today's three-dimensional (3D) computer animation and design applications are professional tools that present many challenging user interface requirements. First and foremost, these systems allow complex and sophisticated controls over 3D data and the behavior of 3D data over time. This sophisticated functionality results in an application with hundreds of commands. Professional users also require efficient access to commands since they may spend a large number of hours operating the application under strict deadlines. Therefore, even small performance improvements (like menu selection speed) can dramatically affect user efficiency and their perceived efficiency of the application. Another major design requirement for this class of application is to reduce the complexity presented by the user interface whenever possible. The nature of data and the operations on the data is, by itself, complex. Adding in a complicated user interface would only further increase the user's cognitive load. These challenges produce three basic problems for the traditional graphic user interface (GUI) which are discussed below.
A typical animation and design application has more than 1000 commands which can be found in the menu bars. The number of commands in these applications is expected to increase as newer versions are produced. At the very most 20 pull-down menus can be placed in a menu bar that span the entire length of a high resolution screen (1280 pixels across). With more than 1000 commands this results in menus that on average have 50 items each in them. In practice, this results in information overload. What is needed is an interface that provides access to a large number of commands without subjecting the user such an overload.
Today's users want fast access to frequently used commands. In traditional graphical user interfaces (GUIs), hot-keys, or menu accelerators, are used for the frequently used functions. However, in most design/animation shops the set of frequently used commands varies between users and from task to task. Furthermore, there is a limit to the number of “fast” hot-keys. Some hot-key combinations are hard to physically articulate (for example, ctrl-alt-P). Other hot-keys are hard to remember (“Why is ctrl-d mapped to “Create IK Joint?”). Ultimately, as the menu structures grow in size, it becomes hard to represent the structure of menus in hot-key mappings. What is needed is a fast access interface that allows easy variation in the frequently used commands.
To reduce the complexity of the user interface, it is preferred that a single interaction technique be available for accessing all the commands. In a traditional GUI, large numbers of commands are sometimes absorbed by placing them in different spots (for example, different tool pallets, different pop-up menus, etc., depending on where you click or what button is pressed). The functionality in some animation/design applications is sufficiently complex that it is important for commands to be grouped by function not by interaction technique. For example, typically GUIs place functional modes into tool bars and one-shot actions into the menus. However, from a functional point of view a particular tool and action may be closely related (for example, the “create curve with points” tool and the “attach curves” action). What is needed is an interface that can use a single interaction technique yet allows grouping by function.
It is also important to provide a menu access technique that unifies novice and expert behaviors. In a traditional GUI, novice and expert operation of the interface can be dramatically different. For example, a novice user may exclusively use only the menu bar while an expert may almost exclusively use hot-keys. The radical difference between these two behaviors makes graduating from novice to expert behavior an explicit (and extra) effort. What is needed is a menu access interface where novice operation is a rehearsal of expert behavior. Essentially, what is needed is for novices and experts to use the same menu access technique perhaps differing only in speed of operations.